package com.SmartCare.service.role;

import com.SmartCare.common.Result;
import com.SmartCare.pojo.role.ElderlyInformation;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 老人信息表 服务类
 * </p>
 */
public interface ElderlyInformationService extends IService<ElderlyInformation> {
    /**
     * 根据姓名，获取老人列表
     */
    Result getElderList(Long workerId, String content);

    /**
     * 根据老人id更新老人信息
     * @param elderlyInformation 老人信息
     * @return 不返回数据
     */
    Result updateElder(ElderlyInformation elderlyInformation);

    /**
     * 根据老人id获取老人信息
     * @param elderId 老人id
     * @return 返回老人对象
     */
    Result getElderData(Long elderId);

    /**
     * 根据老人id查询名称
     */
    String getNameById(Long id);

    /**
     * 老人模块获取个人信息
     */
    Result gerElderInfo(Long userId);

    /**
     * 根据养老院名获取老人信息和相关信息
     */
    Result queryElderData(String name);

    /**
     * 获取老人列表
     *
     * @param pageNum 目标页数
     * @param pageSize 每页数据量
     * @param keyword 关键词
     * @param type 匹配字段
     * @param name 养老院名
     * @return 查询到的老人列表数据
     */
    Result managerGetList(Integer pageNum, Integer pageSize, String keyword, String type, String name);

    /**
     * 添加老人
     * @param elder 添加的老人信息
     * @return 不返回信息
     */
    Result addElder(ElderlyInformation elder);

    /**
     * 导出老人信息
     * @param response 响应流
     * @param id 养老院id
     */
    void export(HttpServletResponse response, String id);

    /**
     * 导入老人信息
     * @param file excel文件
     * @param id 养老院id
     * @return 不返回数据
     */
    Result importElder(MultipartFile file, Long id);

    /**
     * 根据careHomeID查询老人id
     */
    List<Long> getIdsByHomeId(Long homeId);

    /**
     * 根据id删除老人
     * @param id 老人id
     * @return 不返回信息
     */
    Result deleteElder(Long id);

    /**
     * 更新老人信息
     * @param elderId id
     * @param name 名字
     * @param sex 性别
     * @param age 年龄
     * @param imageUrl 老人真实图片地址
     */
    Result updateInfo(Long elderId, String name, Integer sex, Integer age, String imageUrl,String iconUrl);

    /**
     * 获取养老院中的老人
     * @param careHomeName 养老院名
     * @param b 查找的是有药单的老人还是无药单的老人
     * @return 返回查找到的集合
     */
    Result getElders(String careHomeName, Boolean b);

    /**
     * 根据养老院名获取老人列表
     * @param name 养老院名
     * @return 返回老人列表
     */
    Result getElderListByName(String name);
    /**
     * 游客->老人 身份修改请求
     * @param name 老人名字
     * @param careHomeName 养老院名称
     * @param openid openid
     * @param iconUrl 头像地址
     */
    Result toElderRole(String name, String careHomeName,String openid,String iconUrl);
}
